﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using HHo_Negocio;
using HHo_Model;
using System.Collections.Generic;

public partial class trabajo_wfRegTrab : UISeguridad
{
    GestorTblParametros oGesParam;
    bool viewTrabRel = false;
    bool _esRegModificable = false;
    private void PoblarGVTrabajos(int IdTrab)
    {        
            GestorTrabajos oGesTrab = new GestorTrabajos();
            gvTrab.DataSource = oGesTrab.ConsultarTrabajoPorInforme(IdTrab);
            gvTrab.DataBind();        
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            oGesParam = new GestorTblParametros();
            ListItem lst = new ListItem();
            if (hid_Idtrab.Value == "")
            {
                if(Request.QueryString["wv"] != null)
                    hid_Idtrab.Value = Request.QueryString["wv"]; //"-2147483568";
            }
            if (hid_InfTraSeq.Value == "")
            {
                if (Request.QueryString["sq"] != null)
                    hid_InfTraSeq.Value = Request.QueryString["sq"]; //"1";
            }
            //Cargar los combos
            lst.Text = StringConstantes.DDL_SELEC_TEXT;
            lst.Value = StringConstantes.DDL_SELEC_VALUE;

            try
            {
                ddl_Condicion.DataSource = oGesParam.ListaParametroPorGrupo(7);
                ddl_Condicion.DataTextField = StringConstantes.DDL_BIND_PARAM_VAL_TEXT_FIELD;
                ddl_Condicion.DataValueField = StringConstantes.DDL_BIND_PARAM_VAL_VALUE_FIELD;
                ddl_Condicion.DataBind();

                ddlParticipacion.DataSource = oGesParam.ListaParametroPorGrupo(5);
                ddlParticipacion.DataTextField = StringConstantes.DDL_BIND_PARAM_VAL_TEXT_FIELD;
                ddlParticipacion.DataValueField = StringConstantes.DDL_BIND_PARAM_VAL_VALUE_FIELD;
                ddlParticipacion.DataBind();

                //ListItem lstOrigen = new ListItem();
                //lstOrigen.Text = StringConstantes.DDL_SELEC_TEXT;
                //lstOrigen.Value = StringConstantes.DDL_SELEC_VALUE;

                GestorOrigen oGestOrigen = new GestorOrigen();
                ddl_Origen.DataSource = oGestOrigen.ListarOrigen();
                ddl_Origen.DataTextField = "Codigo";
                ddl_Origen.DataValueField = "Id";
                ddl_Origen.DataBind();
                ddl_Origen.Items.Add(lst);
                //ddl_Origen.SelectedValue = StringConstantes.DDL_SELEC_VALUE;

                PoblarTipoTrabajo();

                ddl_EstTrab.DataSource = oGesParam.ListaParametroPorGrupo(3);
                ddl_EstTrab.DataTextField = StringConstantes.DDL_BIND_PARAM_VAL_TEXT_FIELD;
                ddl_EstTrab.DataValueField = StringConstantes.DDL_BIND_PARAM_VAL_VALUE_FIELD;
                ddl_EstTrab.DataBind();
                ddl_EstTrab.Items.Add(lst);
                ddl_EstTrab.SelectedValue = StringConstantes.DDL_SELEC_VALUE;

                //Si existe la programación debe estar deshabilitado los controles que ya tienen datos
                if ((hid_Idtrab.Value.Length > 0) && (hid_InfTraSeq.Value.Length > 0))
                {
                    DivTrabRel.Style.Remove("display");
                    DivTrabRel.Style.Add("display", "none");

                    //TODO -- Ingresa tanto si es programacion como un trabajo ya registrado
                    PoblarDatosTrabajo(Int32.Parse(hid_Idtrab.Value), Int32.Parse(hid_InfTraSeq.Value));
                    PoblarParticipantes(Int32.Parse(hid_Idtrab.Value), Int32.Parse(hid_InfTraSeq.Value));
                    CargarGridUpLoad();
                    //Controlar la posibilidad de cambios
                    if (_esRegModificable)
                    {
                        imgGrabar.ToolTip = "Actualizar";
                        ddl_Condicion.SelectedValue = "29";
                        HabilitarAddPersonal(true);
                        HabilitarUpLoad(true);
                        HabilitarGrabacion(true);
                    }
                    else
                    {
                        imgGrabar.ToolTip = "NoActualizar";
                        ShowMessage("Aviso_Edicion", "El estado actual impide realizar cambios");
                        HabilitarAddPersonal(false);
                        HabilitarUpLoad(false);
                        HabilitarGrabacion(false);
                    }
                }
                else
                {
                    hid_PermitirEdicion.Value = "true";
                    viewTrabRel = true;
                    Session.Add("viewTrabRel", viewTrabRel);
                    PoblarGVTrabajos(Int32.Parse(hid_Idtrab.Value));
                    ddl_Condicion.SelectedValue = "30";
                    DivTrabRel.Style.Remove("display");
                    DivTrabRel.Style.Add("display", "block");
                    HabilitarAddPersonal(false);
                    HabilitarUpLoad(false);
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
    }

    private void PoblarTipoTrabajo()
    {
        ListItem lst = new ListItem();
        lst.Text = "Seleccione";
        lst.Value = "99999";
        GestorTipoTrabajo oGesTipoTrabajo = new GestorTipoTrabajo();
        ddl_TipTrab.DataSource = oGesTipoTrabajo.ConsultarTipoTrabajo(999, '1'); //'1', no considera el primer parametro
        ddl_TipTrab.DataTextField = "Descripcion";
        ddl_TipTrab.DataValueField = "Id";
        ddl_TipTrab.DataBind();
        ddl_TipTrab.Items.Add(lst);
        ddl_TipTrab.SelectedValue = "99999";
    }

    private void CargarGridUpLoad(GestorUpLoad oGesUp, E_FileUpLoad eFile)
    {
        gvFileUpload.DataSource = oGesUp.ListarFilesUpload(eFile);
        gvFileUpload.DataBind();
    }

    private void CargarGridUpLoad()
    {
        E_FileUpLoad eFile = new E_FileUpLoad();
        GestorUpLoad oGesUp = new GestorUpLoad();

        eFile.IdTrab = Int32.Parse(hid_Idtrab.Value);
        eFile.SeqInfTrab = Int16.Parse(hid_InfTraSeq.Value);

        CargarGridUpLoad(oGesUp, eFile);
    }

    private void LimpiarControles()
    {
        txtTiempoRealUtil.Text = "";
txtNumDiferido.Text = "";
txtAccion.Text = "";
txtObs.Text = "";
//hid_FilesUpLoad.Value = "";
txtDesTrab.Text = "";

    }

    private void PoblarParticipantes(int IdTrabajo, int SeqTrabajo)
    {
        // Consultar Participantes
        GestorTrabajos oGesTrabajo;
        try
        {
            oGesTrabajo = new GestorTrabajos();
            gvParticipantes.DataSource = oGesTrabajo.ConsultarParticipantes(IdTrabajo, SeqTrabajo);
            gvParticipantes.DataBind();
        }
        catch (Exception ex)
        {
            Response.Write("ERROR poblando los datos de participantes <br/><strong>Información Técnica</strong><br/>" + ex.Message);
        }
        
    }

    private void DeshabilitarControles()
    {
        imgAgregarPers.Enabled = false;
        imgVerificarSubATA.Enabled = false;
        fileUpLoad.Enabled = false;
        imgSubir.Enabled = false;
//        imgGrabar.Enabled = false;
    }

    /// <summary>
    /// Consulta el registro de informe e inhabilita los controles de ediciòn si está cerrado el informe
    /// </summary>
    /// <param name="IdTrabajo"></param>
    /// <param name="Seq"></param>
    private void PoblarDatosTrabajo(int IdTrabajo, int Seq)
    {
        List<E_DetalleTrabajo> lstDetalle;
        E_DetalleTrabajo[] oDetTrab;
        oGesParam = new GestorTblParametros();
        GestorComponente oGesComp = new GestorComponente();
        string DatosComponenteCSV;
        HHo_Negocio.GestorTrabajos oGestTrabajo = new GestorTrabajos();
        string strErrorPersonalizado = "";
        divTipoTrab.Style.Remove("Display");
        divTipoTrab.Style.Add("Display", "None");
        divAtaSata.Style.Remove("Display");
        divAtaSata.Style.Add("Display", "none");

        try
        {
            strErrorPersonalizado = "Consultando el trabajo programado";
            lstDetalle = oGestTrabajo.ConsultarTrabajoPorInforme(IdTrabajo, Seq);
            oDetTrab = lstDetalle.ToArray();

            if (oDetTrab[0].EsModificable)
            {
                hid_PermitirEdicion.Value = "true";
                _esRegModificable = true;
            }
            ddl_Condicion.SelectedValue = oDetTrab[0].ProgNProg.ToString();
            ddl_Condicion.Visible = false;
            lblCondicion.Text = ddl_Condicion.SelectedItem.Text;

            //if (oDetTrab[0].ProgNProg == oGesParam.ObtenerParamID(7, StringConstantes.PAR_COD_PRG_PROGRAMADO))
            //    ddl_Condicion.Enabled = false;
            //else
            //    ddl_Condicion.Enabled = true;


            if (oDetTrab[0].NotaPrg.Trim().Length > 0)
            {
                txtNotaPrg.Text = oDetTrab[0].NotaPrg;
                txtNotaPrg.ReadOnly = true;
                displayNota.Style.Remove("display");
                displayNota.Style.Add("display", "block");
            }
            else
            {
                displayNota.Style.Remove("display");
                displayNota.Style.Add("display", "none");
            }
            

            txtAccion.Text = oDetTrab[0].Accion;

            txtComp.Text = oDetTrab[0].ComponenteId.ToString();
            strErrorPersonalizado = "Obteniendo datos del componente";
            DatosComponenteCSV = oGesComp.ConsultarComponente(oDetTrab[0].ComponenteId);

            if (DatosComponenteCSV != null)
            {
                string[] DatosComponenteSplit = DatosComponenteCSV.Split('|');
                txtAta.Text = DatosComponenteSplit[1];
                txtSATA.Text = DatosComponenteSplit[2];
                lblDesComp.Text = DatosComponenteSplit[4];
                divAtaSata.Style.Remove("Display");
                divAtaSata.Style.Add("Display", "block");
                imgVerificarSubATA.Visible = false;
            }
            txtSATA.ReadOnly = true;
            txtAta.ReadOnly = true;

            ddl_Origen.SelectedValue = oDetTrab[0].OrigenId.ToString();
            ddl_Origen.Visible = false;
            lblOrigen.Text = ddl_Origen.SelectedItem.Text;

            txtTiempoRealUtil.Text = oDetTrab[0].TRHH.ToString();
            txtNumDiferido.Text = oDetTrab[0].NroDiferido;

            txtDesTrab.Text = oDetTrab[0].DescTrabajo;
            txtDesTrab.ReadOnly = true;
            if (oDetTrab[0].TipoTrabajoId > 0)
            {
                ddl_TipTrab.SelectedValue = oDetTrab[0].TipoTrabajoId.ToString();
                divTipoTrab.Style.Remove("Display");
                divTipoTrab.Style.Add("Display", "block");
                ddl_TipTrab.Visible = false;

                lblTipTrab.Text = ddl_TipTrab.SelectedItem.Text;
            }
            ddl_EstTrab.SelectedValue = oDetTrab[0].EstadoTrabajoId.ToString();
            txtObs.Text = oDetTrab[0].Observacion;

            if (oDetTrab[0].TRHH >0)
            {
                HabilitarGrabacion(false);
            }
            else
            {
                HabilitarGrabacion(true);
            }
        }
        catch (Exception ex)
        {
            Response.Write("ERROR: " + strErrorPersonalizado + "<br/><strong>Información Técnica</strong><br/>" + ex.Message);
        }
    }

    protected void ddl_Origen_SelectedIndexChanged(object sender, EventArgs e)
    {
        txtAta.Text = "";
        txtSATA.Text = "";
        hid_CodComponente.Value = "";
        lblDesComp.Text = "";
        ddl_TipTrab.SelectedValue = "99999";

        List<E_Origen> lstOrigen;
        E_Origen[] oOrigen;
        GestorOrigen oGestOrigen = new GestorOrigen();

        try
        {
            lstOrigen = oGestOrigen.ListarOrigen(Int32.Parse(ddl_Origen.SelectedValue));
            oOrigen = lstOrigen.ToArray();

            // Si el Origen contempla poblar Tipo de Trabajo
            if (oOrigen[0].EsObligatorioComponente == "1")
            {
                txtAta.Enabled = true;
                txtSATA.Enabled = true;
                txtComp.Enabled = true;
                txtDesTrab.Enabled = true;
                //ddl_TipTrab.SelectedValue = "99999";
                ddl_TipTrab.Enabled = false;


                divAtaSata.Style.Remove("display");
                divAtaSata.Style.Add("display", "block");

                divTipoTrab.Style.Remove("display");
                divTipoTrab.Style.Add("display", "none");

            }
            else
            {
                txtAta.Enabled = false;
                txtSATA.Enabled = false;
                txtComp.Enabled = false;
                txtDesTrab.Enabled = false;
                ddl_TipTrab.Enabled = true;
                //PoblarTipoTrabajo();

                divAtaSata.Style.Remove("display");
                divAtaSata.Style.Add("display", "none");

                divTipoTrab.Style.Remove("display");
                divTipoTrab.Style.Add("display", "block");

            }

            if (Session["viewTrabRel"] != null)
            {
                if (Convert.ToBoolean(Session["viewTrabRel"].ToString()) == true)
                {
                    PoblarGVTrabajos(Int32.Parse(hid_Idtrab.Value));
                }
            }
        }
        catch (Exception ex)
        {
            Response.Write("Mensaje Técnico " + ex.Message);
        }                
    }

    protected void gvParticipantes_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GestorTblParametros oGestParam = new GestorTblParametros();
            e.Row.Cells[1].Text = oGestParam.ObtenerValorParamtroPorID(Int32.Parse(DataBinder.Eval(e.Row.DataItem, "IdTipoApoyo").ToString()));
        }
    }

    protected void gvParticipantes_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //if (e.CommandName == "Eliminar")
        //{
        //    GestorTrabajos oGesTrab = new GestorTrabajos();
        //    string[] Datos;
            
        //    int index = Convert.ToInt32(e.CommandArgument);
        //    GridViewRow selectedRow = gvParticipantes.Rows[index];
        //    //TODO - Implementar la eliminacion de Participantes
        //    //Label lbl = (Label)selectedRow.FindControl("Label1");
        //    HiddenField hid = (HiddenField)selectedRow.FindControl("HiddenField1");
        //    Datos = hid.Value.Split('|');
        //    try
        //    {
        //        int NumElimindos = oGesTrab.EliminarParticipante(Int32.Parse(Datos[0]), Int32.Parse(Datos[1]), Int32.Parse(Datos[2]),false);

        //        if (NumElimindos > 0)
        //        {
        //            lblMensaje.Text = "Mensaje: Usuario Eliminado";
        //            PoblarParticipantes(Int32.Parse(hid_Idtrab.Value), Int32.Parse(hid_InfTraSeq.Value));
        //        }
        //        else
        //            lblMensaje.Text = "Mensaje: No se pudo eliminar";
        //    }
        //    catch(Exception ex)
        //    {
        //        lblMensaje.Text = ex.Message;
        //    }
        //}
    }
    protected void imgGrabar_Click(object sender, ImageClickEventArgs e)
    {
        GestorTrabajos oGesTrab;
        E_DetalleTrabajo oDetTrab;
        E_Usuario oUser = (E_Usuario)Session["UsuarioAuth"];

        
        if (imgGrabar.ToolTip == "Actualizar")
        {
            //Actualizar trabajo
            oGesTrab = new GestorTrabajos();
            oDetTrab = new E_DetalleTrabajo();

            oDetTrab.Id = Int32.Parse(hid_Idtrab.Value);
            oDetTrab.SecuenciaTrabajo = Int16.Parse(hid_InfTraSeq.Value);
            oDetTrab.TRHH = Convert.ToDecimal(txtTiempoRealUtil.Text);
            oDetTrab.NroDiferido = txtNumDiferido.Text;
            oDetTrab.EstadoTrabajoId = Int32.Parse(ddl_EstTrab.SelectedValue);
            oDetTrab.Accion = txtAccion.Text;
            oDetTrab.Observacion = txtObs.Text;
            oDetTrab.UserInfo = oUser.UsrId;
            

            try
            {
                if (oGesTrab.ActualizarInformePostPrg(oDetTrab) > 0)
                {
                    ShowMessage("Aviso_Grab", "Datos Grabados Satisfactoriamente");
                    HabilitarGrabacion(false);
                    tblDisplayAdjuntos.Style.Remove("display");
                    tblDisplayAdjuntos.Style.Add("display","block");
                    tblDisplayMecanico.Style.Remove("display");
                    tblDisplayMecanico.Style.Add("display", "block");
                }
                else
                {
                    ShowMessage("Aviso_NoGrab","Los Datos ingresados no han podido grabarse");
                    tblDisplayAdjuntos.Style.Remove("display");
                    tblDisplayAdjuntos.Style.Add("display", "none");
                    tblDisplayMecanico.Style.Remove("display");
                    tblDisplayMecanico.Style.Add("display", "none");
                }
            }
            catch (Exception ex)
            {
                Response.Write("Los Datos ingresado no han podido grabarse ERROR: " + ex.Message);
            }
        }
        else
        {
            oGesTrab = new GestorTrabajos();
            try
            {
                int _codComp;
                int _codTipTra;
                short _seqTrabRef = -99;
                int _idTrabRef = -99;

                if (hid_CodComponente.Value.Length > 0)
                    _codComp = Int32.Parse(hid_CodComponente.Value);
                else
                    _codComp = 0;

                if (ddl_TipTrab.SelectedValue == "99999")
                    _codTipTra = 0;
                else
                    _codTipTra = Int32.Parse(ddl_TipTrab.SelectedValue);

                if ((_codComp != 0) && (_codTipTra != 0))
                {
                    ShowMessage("ERROR_Comp_TipTra", "ERROR: debe elegir un Componente o un Tipo de Trabajo pero no ambos");
                    return;
                }

                if(Request.Form["radMyRadio"] != null) 
                {
                    _seqTrabRef = Int16.Parse(Request.Form["radMyRadio"].ToString());
                    _idTrabRef = Int32.Parse(hid_Idtrab.Value);
                }

                hid_InfTraSeq.Value = oGesTrab.RegistrarDetalleTrabajo(Int32.Parse(hid_Idtrab.Value), Int32.Parse(ddl_Condicion.SelectedValue), Int32.Parse(ddl_Origen.SelectedValue),
                    Convert.ToDecimal(txtTiempoRealUtil.Text), txtNumDiferido.Text, _codComp, txtDesTrab.Text, _codTipTra, Int32.Parse(ddl_EstTrab.SelectedValue),
                     txtAccion.Text, txtObs.Text, 0, 0, 0, _idTrabRef, _seqTrabRef, "", oUser.UsrId).ToString();

                ShowMessage("Confirm_GrabNuevo", "Informe Grabado Correctamente");
                tblDisplayAdjuntos.Style.Remove("display");
                tblDisplayAdjuntos.Style.Add("display", "block");
                tblDisplayMecanico.Style.Remove("display");
                tblDisplayMecanico.Style.Add("display", "block");
                HabilitarGrabacion(false);

                HabilitarAddPersonal(true);
                HabilitarUpLoad(true);
            }
            catch (Exception ex)
            {
                tblDisplayAdjuntos.Style.Remove("display");
                tblDisplayAdjuntos.Style.Add("display", "none");
                tblDisplayMecanico.Style.Remove("display");
                tblDisplayMecanico.Style.Add("display", "none");
                Response.Write("ERROR: No se ha podido grabar el trabajo " + ex.Message);
            }
        }
    }
    
    protected void ddl_EstTrab_SelectedIndexChanged(object sender, EventArgs e)
    {
        GestorTblParametros oGesParam = new GestorTblParametros();
        if (Int32.Parse(ddl_EstTrab.SelectedValue) == oGesParam.ObtenerParamID(3, "DIF"))
        {
            DivDiferido.Style.Remove("Display");
            DivDiferido.Style.Add("Display", "block");
        }
        else
        {
            DivDiferido.Style.Remove("Display");
            DivDiferido.Style.Add("Display", "none");
        }

        if (Session["viewTrabRel"] != null)
        {
            if (Convert.ToBoolean(Session["viewTrabRel"].ToString()) == true)
            {
                PoblarGVTrabajos(Int32.Parse(hid_Idtrab.Value));
            }
        }  
    }
    protected void gvTrab_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //mostrar los nombres de componentes o tipos de trabajo
            if (DataBinder.Eval(e.Row.DataItem, "ComponenteId").ToString() != "0")
            {
                e.Row.Cells[0].Text = DataBinder.Eval(e.Row.DataItem, "DescTrabajo").ToString();
                e.Row.Cells[1].Text = DataBinder.Eval(e.Row.DataItem, "CompDesc").ToString();

                if (DataBinder.Eval(e.Row.DataItem, "TRHH").ToString().Length > 0)
                {
                    e.Row.Cells[2].Text = DataBinder.Eval(e.Row.DataItem, "TEstimComponente").ToString();
                }
            }
            else
            {
                e.Row.Cells[0].Text = DataBinder.Eval(e.Row.DataItem, "TipTraDesc").ToString();
                e.Row.Cells[1].Text = "---";
                if (DataBinder.Eval(e.Row.DataItem, "TRHH").ToString().Length > 0)
                {
                    e.Row.Cells[2].Text = DataBinder.Eval(e.Row.DataItem, "TEstimTipoTrab").ToString();
                }
            }
        }
    }
    //protected void gvTrab_SelectedIndexChanged(object sender, EventArgs e)
    //{
    //    SeqTrabRelacionado = Int32.Parse(gvTrab.DataKeys[gvTrab.SelectedIndex].Values["SecuenciaTrabajo"].ToString());
    //}

    protected void gvFileUpload_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //if (e.CommandName == "Eliminar")
        //{
            GestorUpLoad oGesUp = new GestorUpLoad();
            E_FileUpLoad eFile = new E_FileUpLoad();

            DataKey Key;

            int index = Convert.ToInt32(e.CommandArgument);

            Key = gvFileUpload.DataKeys[index];


            eFile.IdTrab = Convert.ToInt32(Key.Values[0].ToString());
            eFile.SeqInfTrab = Convert.ToInt16(Key.Values[1].ToString());
            eFile.SeqFileUp = Convert.ToInt16(Key.Values[2].ToString());

            oGesUp.EliminaFile(eFile);

            CargarGridUpLoad(oGesUp, eFile);
        //}
    }
    protected void imgVerificarSubATA_Click(object sender, ImageClickEventArgs e)
    {
        GestorComponente oGestorComponente = new GestorComponente();
        string DatosComponente = oGestorComponente.ConsultarComponente(txtAta.Text, txtSATA.Text, txtComp.Text, "1");
        string[] vDatosComponente;
        if (DatosComponente != null)
        {
            lblDesComp.Text = DatosComponente;
            vDatosComponente = DatosComponente.Split('|');
            hid_CodComponente.Value = vDatosComponente[0];
        }
        else
        {
            lblDesComp.Text = "";
            ClientScriptManager oClient = Page.ClientScript;
            oClient.RegisterStartupScript(this.GetType(), "Aviso", "alert('No existem datos para el componente ingresado, vuelva a ingresar los datos');", true);
        }   

    }
    protected void imgSubir_Click(object sender, ImageClickEventArgs e)
    {
        //TODO - SOPORTE PARA ADJUNTOS CUANDO SEA UN NUEVO TRABAJO.
        if (fileUpLoad.HasFile)
        {
            fileUpLoad.SaveAs(MapPath("~/upload/" + fileUpLoad.FileName));
            E_FileUpLoad eFile = new E_FileUpLoad();
            GestorUpLoad oGesUp = new GestorUpLoad();

            eFile.IdTrab = Int32.Parse(hid_Idtrab.Value);
            eFile.SeqInfTrab = Int16.Parse(hid_InfTraSeq.Value);
            eFile.NombFileUp = fileUpLoad.FileName;
            eFile.SizeFileUp = fileUpLoad.FileBytes.Length / 1024 + "KB";

            oGesUp.InsertFile(eFile);

            CargarGridUpLoad(oGesUp, eFile);

            //hid_FilesUpLoad.Value = hid_FilesUpLoad.Value + "<nfl>"+fileUpLoad.FileName + "</nfl>";

        }
    }
    protected void imgAgregarPers_Click(object sender, ImageClickEventArgs e)
    {
        ClientScriptManager cs = Page.ClientScript;
        if (txtParticipante.Text.Trim().Length > 0)
        {
            GestorTrabajos oGesTrabajo;
            oGesTrabajo = new GestorTrabajos();
            //Registrar Participante
            try
            {
                oGesTrabajo.RegistrarParticipante(txtParticipante.Text, Int32.Parse(hid_Idtrab.Value), Int32.Parse(hid_InfTraSeq.Value), Int32.Parse(ddlParticipacion.SelectedValue));
                txtParticipante.Text = "";
                //poblar Participantes
                PoblarParticipantes(Int32.Parse(hid_Idtrab.Value), Int32.Parse(hid_InfTraSeq.Value));
            }
            catch (Exception ex)
            {
                cs.RegisterStartupScript(this.GetType(),"ERROR","alert('ERROR: ocurrido al grabar el participante\nInformación Técnica" + ex.Message + "')",true);
                //lblMensaje.Text = "ERROR: ocurrido al grabar el participante<br/><strong>Información Técnica</strong><br/>" + ex.Message;
            }            
        }
        else
        {
            cs.RegisterStartupScript(this.GetType(), "ERROR", "alert('ERROR:No se ha ingresado el nombre del mecanico')");
            //lblMensaje.Text = "Error: ";
        }
    }

    private void HabilitarUpLoad(bool opc)
    {
        // considerar el estado del informe para permitir modficacion
        if (hid_PermitirEdicion != null)
        {
            if(hid_PermitirEdicion.Value == "true")
                _esRegModificable = true;
        }

        if (opc && _esRegModificable)
            imgSubir.ImageUrl = "../styles/a-main/BTcargar.gif";
        else
            imgSubir.ImageUrl = "../styles/a-main/BTcargar_dis.gif";

        imgSubir.Enabled = opc && _esRegModificable;
    }

    private void HabilitarAddPersonal(bool opc)
    {
        // considerar el estado del informe para permitir modficacion
        if (hid_PermitirEdicion != null)
        {
            if (hid_PermitirEdicion.Value == "true")
                _esRegModificable = true;
        }
        if (opc && _esRegModificable)
            imgAgregarPers.ImageUrl = "../styles/a-main/BTagregar.gif";
        else
            imgAgregarPers.ImageUrl = "../styles/a-main/BTagregar_Dis.gif";

        imgAgregarPers.Enabled = opc && _esRegModificable;
    }

    private void HabilitarGrabacion(bool opc)
    {
        // considerar el estado del informe para permitir modficacion
        if (hid_PermitirEdicion != null)
        {
            if (hid_PermitirEdicion.Value == "true")
                _esRegModificable = true;
        }

        if(opc && _esRegModificable)
            imgGrabar.ImageUrl = "../styles/a-main/BTgrabar.gif";
        else
            imgGrabar.ImageUrl = "../styles/a-main/BTgrabar_Dis.gif";

        imgGrabar.Enabled = opc && _esRegModificable;
    }
}
